package cn.edu.tju.elm.dto.wallet;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 钱包交易流水数据传输对象
 * 用于前后端或各层之间传递交易流水相关的数据
 */
public class WalletTransactionDto {
    private Long id;
    private BigDecimal amount;
    private String type;
    private Long toWalletId;
    private Long fromWalletId;
    private String status;
    private BigDecimal fee;
    private BigDecimal rewardAmount;
    private Long orderId;
    private Long businessId;
    private String remark;
    private String transactionNo;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
    
    // Getters and Setters
    public Long getId() {
        return id;
    }
    
    public void setId(Long id) {
        this.id = id;
    }
    
    public BigDecimal getAmount() {
        return amount;
    }
    
    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }
    
    public String getType() {
        return type;
    }
    
    public void setType(String type) {
        this.type = type;
    }
    
    public Long getToWalletId() {
        return toWalletId;
    }
    
    public void setToWalletId(Long toWalletId) {
        this.toWalletId = toWalletId;
    }
    
    public Long getFromWalletId() {
        return fromWalletId;
    }
    
    public void setFromWalletId(Long fromWalletId) {
        this.fromWalletId = fromWalletId;
    }
    
    public String getStatus() {
        return status;
    }
    
    public void setStatus(String status) {
        this.status = status;
    }
    
    public BigDecimal getFee() {
        return fee;
    }
    
    public void setFee(BigDecimal fee) {
        this.fee = fee;
    }
    
    public BigDecimal getRewardAmount() {
        return rewardAmount;
    }
    
    public void setRewardAmount(BigDecimal rewardAmount) {
        this.rewardAmount = rewardAmount;
    }
    
    public Long getOrderId() {
        return orderId;
    }
    
    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }
    
    public Long getBusinessId() {
        return businessId;
    }
    
    public void setBusinessId(Long businessId) {
        this.businessId = businessId;
    }
    
    public String getRemark() {
        return remark;
    }
    
    public void setRemark(String remark) {
        this.remark = remark;
    }
    
    public String getTransactionNo() {
        return transactionNo;
    }
    
    public void setTransactionNo(String transactionNo) {
        this.transactionNo = transactionNo;
    }
    
    public LocalDateTime getCreateTime() {
        return createTime;
    }
    
    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
    
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }
    
    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }
    
    @Override
    public String toString() {
        return "WalletTransactionDto{" +
                "id=" + id +
                ", amount=" + amount +
                ", type='" + type + '\'' +
                ", toWalletId=" + toWalletId +
                ", fromWalletId=" + fromWalletId +
                ", status='" + status + '\'' +
                ", fee=" + fee +
                ", rewardAmount=" + rewardAmount +
                ", orderId=" + orderId +
                ", businessId=" + businessId +
                ", remark='" + remark + '\'' +
                ", transactionNo='" + transactionNo + '\'' +
                ", createTime=" + createTime +
                '}';
    }
}